macOS 10.15 で python3 が壊れた
日記に書こうかと思ったけど日記にしては逸れすぎなのでこっちに書くことにした。
macOS 10.15 (10.15.1-10.15.2) にあげたあとに brew で httpie 入れようとして、流れてるログで python が入れられてることに気付き、じゃあこれ pip でいいじゃんと思って brew コマンドを中断したところ python が壊れてしまった。
code:crashlog
Application Specific Information:
/usr/lib/libcrypto.dylib
abort() called
Invalid dylib load. Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI.
どうやら crypto 関連の dylib がダメみたい。
調べたところこんな記事が出てきた。
閲覧時では 42 の Upvote を受けてるベストアンサーの DYLD_LIBRARY_PATH に brew 版 openssl の lib を追加するやつでもまあ治るっちゃ治るのだが、なんか心もとないので2つ目の手法を試す。
心もとないというのはシェル以外でちゃんと効くのかというやつですね
openssl 版の libssl.dylib と libcrypto.dylib を /usr/local/bin にシンボリックリンクする。
brew install openssl
/usr/local/bin に行く。
ll | grep libssl ll | grep libcrypto して無いことを確認する。
sudo ln -s /usr/local/Cellar/openssl/1.0.2s/lib/libcrypto.1.0.0.dylib libcrypto.1.0.0.dylib
sudo ln -s /usr/local/Cellar/openssl/1.0.2s/lib/libssl.1.0.0.dylib libssl.1.0.0.dylib
1.0.2.s あたりはそりゃ各自違うと思うのでちゃんとチェックしてください
追記: .1.0.0 を省略した名前にしてたら普通にうまく行かなかったので付けてください
一応ターミナル全部開き直して、pip がうまくいったりすれば成功です。
追記: MySQLdb をインポートしてみると要求されるので確かめやすいです
おわりに
自分の場合はかなり具体的な契機があったので中断のせいでぶっ壊れたのかと思ったんですが、たまたま整理が行われたタイミングで macOS 10.15 のバグが発現した感じなのですかね?よくわからん